package com.ruoyi.project.mapper;

import java.util.List;

import com.ruoyi.member.domain.MessageSend;
import com.ruoyi.project.domain.ProjectRisk;
import org.apache.ibatis.annotations.Param;

/**
 * 项目风险Mapper接口
 *
 * @author yuhaoyang
 * @date 2024-06-04
 */
public interface ProjectRiskMapper {
    /**
     * 查询项目风险
     *
     * @param riskId 项目风险主键
     * @return 项目风险
     */
    public ProjectRisk selectProjectRiskByRiskId(Long riskId);

    /**
     * 查询项目风险列表
     *
     * @param projectRisk 项目风险
     * @return 项目风险集合
     */
    public List<ProjectRisk> selectProjectRiskList(ProjectRisk projectRisk);

    /**
     * 新增项目风险
     *
     * @param projectRisk 项目风险
     * @return 结果
     */
    public int insertProjectRisk(ProjectRisk projectRisk);

    /**
     * 修改项目风险
     *
     * @param projectRisk 项目风险
     * @return 结果
     */
    public int updateProjectRisk(ProjectRisk projectRisk);

    /**
     * 删除项目风险
     *
     * @param riskId 项目风险主键
     * @return 结果
     */
    public int deleteProjectRiskByRiskId(Long riskId);

    /**
     * 批量删除项目风险
     *
     * @param riskIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteProjectRiskByRiskIds(Long[] riskIds);


    /**
     * 根据项目id查询项目风险
     *
     * @param projectId 项目主键
     * @return 结果
     */
    public List<ProjectRisk> selectProjectRiskListByProjectId(@Param("projectId") Long projectId);

    /**
     * 插入消息发送
     *
     * @param messageSend 消息发送
     * @return 结果
     */
    int insertSend(MessageSend messageSend);

    /**
     * 插入消息接收
     *
     * @param messageId 消息id
     * @param projectId 项目id
     * @param userId    用户id
     */
    void insertReceive(@Param("messageId") Long messageId, @Param("projectId") Long projectId, @Param("userId") Long userId);

    /**
     * 检查项目风险标题是否唯一
     *
     * @param projectRisk 项目风险
     * @return 结果
     */
    Long checkUniqueRiskTitle(ProjectRisk projectRisk);
}
